CRIANDO GRÁFICOS UTILIZANDO VRML

O Maple V tem sido muito conhecido por sua alta sofisticação na criação de gráficos tridimensionais. Com uma vasta lista de ferramentas, o Maple pode construir funções gráficas que produzam formas 3D retangulares, esféricas, cilíndricas e geométricas. Podemos produzir combinações gráficas facilmente, simplesmente "acumulando" comandos gráficos como já vimos em capítulos anteriores. Veremos nessa seção como exportar gráficos para serem vistos em 3D, com o auxílio de algumas ferramentas especiais.


O comando vrml (que significa - virtual reality markup language ) será utilizado por nós para que possamos estruturar dados 3D de forma que eles possam ser visualizadas interativamente através da Internet. Esse comando nos permite transformar qualquer gráfico 3D criado no Maple V em um arquivo vrml .

Observe o exemplo abaixo:

> restart;

> with(plottools):

> geom3d[point](o,0,0,0): r := 1.:

> geom3d[GreatRhombiicosidodecahedron] (p1,o,r):

> geom3d[duality](dp1,p1,geom3d[sphere](s1,[o,geom3d[MidRadius](p1)]));

> c1:=COLOR(RGB,1.00,0.50,0.50): c2:=COLOR(RGB,0.50,0.00,0.05):

> pic:=geom3d[draw]([p1(color=c1),dp1(color=c2)],cutout=7/8,lightmodel=light2,orientation=[0,31]):pic;

> vrml(pic,`Rhombii.wrl`,shininess=0.5,specular_color=COLOR(RGB,1,1,1)):

 

[Maple Plot]


A completa estrutura de dados que define o gráfico é atribuída à variável pic . A função vrml então gera um arquivo, chamado Rhombii.wrl em um diretório padrão, como define a estrutura de dados em vrml . Este arquivo pode ser visualizado usando algum navegador vrml . Nosso exemplo foi testado usando uma ferramenta da Silicon Graphics denominada Cosmo Player. Para fazer download deste software, clique no botão abaixo:

A seguir temos um exemplo de como o gráfico é visto no seu navegador:

[Maple OLE 2.0 Object]

O Cosmo Player permite visualizar e explorar os gráficos interativamente, usando as ferramentas do navegador quase como uma simulação de vôo em tempo real, dentro do seu próprio mundo virtual.

Veremos a seguir os principais parâmetros do comando e como as mudanças serão vistas no seu navegador

Esta opção permite escolher a cor de fundo do ambiente virtual. Se não for escolhida esta opção, o default do Maple é fundo preto. Esta opção só pode ser escolhida uma única vez.

> with(plots): with(plottools):

> vrml(display(torus([0,0,0],1)),`graph01.wrl`,background_color =COLOR(RGB,0.925874,0.485755,0.36536) );

[Maple OLE 2.0 Object]

 

Luzes Direcionais nos permitem especificar focos de luzes infinitamente distantes. Todos os raios de luz vem de uma fonte e apontam para uma mesma direção. A intensidade pode variar de -1 a 1, sendo o valor negativo a retirada da luz no objeto e o valor positivo a intensidade deste foco no objeto. xdir, ydir, zdir são as coordenadas do vetor que especifica a direção na qual os raios de luz estão apontados. Esta opção pode ser especificada múltiplas vezes. No exemplo, temos um exemplo de ausência de luz em um objeto branco.

> with(plots): with(plottools):

> vrml(display(torus([0,0,0],0.7),color=white,style=patchnogrid),`graph02.wrl`,directional_light=[-0.8, white,[4,1,4]] );

[Maple OLE 2.0 Object]

Esta opção especifica como os materiais (cores) são "ligados" num determinado objeto. Existem dois tipos de ligação possíveis: PER_VERTEX e PER_FACE. PER_VERTEX significa que cada vértice tem uma cor associada a ele e os polígonos formados por esses vértices tem suas cores variando de forma suave e quase imperceptível de um vértice para outro. PER_FACE significa que para cada polígono será associado uma cor sólida. Se esta opção não for especificada, o default do Maple é PER_FACE.

> with(plots): with(plottools):

> vrml(plot3d(1,theta=0..2*Pi,phi=0..Pi,coords=spherical,scaling=constrained,style=patchnogrid,lightmodel=light1),`graph03.wrl`,material_binding=PER_VERTEX,background_color =COLOR(RGB,0,0,0.26536));

[Maple OLE 2.0 Object]

 

Point light é um ponto especial de onde a luz é emitida em todas as direções. A intensidade é representada por um número entre -1 e 1. Valores negativos fazem com que possamos "sugar" luzes do mundo virtual tornando-o de aparência mais escura, sendo valores positivos responsáveis por efeitos inversos. As coordenadas x, y e z especificam o ponto neste mundo onde a fonte de luz será posicionada.

> with(plots): with(plottools):

> vrml(plot3d(1,theta=0..2*Pi,phi=0..Pi,coords=spherical,color = white,style =patchnogrid),`graph04.wrl`,point_light = [-0.5,white,[4,4,4]]);

[Maple OLE 2.0 Object]

 

Esta opção nos permite texturizar um objeto. Podemos utilizar diversos tipos de arquivos como textura (figuras do tipo jpg ou gif, por exemplo). Este comando possui uma série de outros parâmetros que nos permitem criar efeitos de rotação, modificação de escala etc.

> with(plots): with(plottools):

> vrml(plot3d(1,theta=0..2*Pi,phi=0..Pi,coords=spherical,color=white,style = patchnogrid),`graph05.wrl`,texture=[image=`image1.jpg`] );

[Maple OLE 2.0 Object]

 

Esta opção especifica a transparência de um determinado objeto. O valor pode ser um número entre 0 e 1. 0 significa que o objeto é opaco. 1 significa que o objeto será totalmente transparente. Valores entre 0 e 1 criam um objeto translúcido. Esta opção pode ser especificada uma única vez.

> with(plots): with(plottools):

> vrml(polyhedraplot([0,0,0],polytype=dodecahedron,style=patch,scaling=constrained,lightmodel=light1),`graph06.wrl`,transparency=0.8,background_color =COLOR(RGB,0.181,0.251,0.981));

[Maple OLE 2.0 Object]

VOLTAR